package com.diandiji.demo.config;

import com.diandiji.demo.interceptor.AuthInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * Spring MVC 配置类，用于注册自定义拦截器。
 * 通过该配置类，可以指定哪些路径需要被拦截器处理，以及哪些路径需要排除。
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    @Autowired
    private AuthInterceptor authInterceptor;

    /**
     * 注册拦截器及其拦截路径。
     *
     * @param registry 拦截器注册表
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 添加 AuthInterceptor 拦截器，并指定拦截路径和排除路径
        registry.addInterceptor(authInterceptor)
                .addPathPatterns("/Note/**") // 拦截所有 /Note 开头的请求
                .excludePathPatterns("/Note/find"); // 排除接口
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 映射 /uploads/** 到本地文件系统路径
        registry.addResourceHandler("/uploads/**")
                .addResourceLocations("file:D:/upload/");
    }
}